package old_go_learn

import (
	"fmt"
	"time"
)

func main(){
	//创建一个无缓存的channel
	ch := make(chan int,0)

	//len(ch)是缓冲区剩余数据个数，cap是缓冲区大小
	fmt.Printf("len(ch) = %d,cap(ch) = %d\n",len(ch),cap(ch))

	//新建协程
	go func() {
		for i:=0;i<3;i++{
			fmt.Println("子协程 i = ",i)

			ch <- i  //往channel里写内容,如果下面没有去读取chan里面的内容,此处会阻塞

			fmt.Printf("len(ch) = %d,cap(ch)=%d\n",len(ch),cap(ch))
		}
	}()

	//休息2秒
	time.Sleep(2* time.Second)

	for i:=0;i<3;i++{
		num := <-ch  //读管道中的内容,没有内容就会阻塞
		fmt.Println("num = ",num )
	}
}
